/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.itschapala.dsw2.bar.bl;

import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import mx.itschapala.dsw2.bar.dao.VentaDaoLocal;
import mx.itschapala.dsw2.bar.enumeracion.Estado;
import mx.itschapala.dsw2.bar.enumeracion.EstadoVenta;
import mx.itschapala.dsw2.bar.modelo.DetalleVenta;
import mx.itschapala.dsw2.bar.modelo.Usuario;
import mx.itschapala.dsw2.bar.modelo.Venta;

/**
 *
 * @author Dhavis
 */
@Stateless
public class VentaBl {
    @EJB
    private VentaDaoLocal ventaDao1;

    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")
    @EJB
    private VentaDaoLocal ventaDao;
    
    
    private Iterable<Venta> ventas;
    private Object detalleVentaDao;

    
    /**
     *
     * @param user
     * @param drink
     * @return
     */
    @Override
    public Estado lendBooks(Usuario user, List<BebidaBl> drink) {
        List<Venta> sale=ventaDao.findIncompleteByUser(user);
        int available=3;
        for(Venta v: ventas){
            available=available - ventaDao.findLends(v).equals(drink);
        }
        if (available<=0 || user.getIdUsuario()==null || drink.isEmpty() || drink.size()>available){
            return Estado.INCOMPLETE;
        }else{
            Venta v=new Venta();
            v.setUsuario(available);
            v.setFecha(new Date());
            v.setHora(new Date());
            v.setEfectivo(EstadoVenta.SOLD.ordinal());
            ventaDao.create(v);
            
            for(BebidaBl b:drink){
                DetalleVenta dv= new DetalleVenta();
                dv.setIdDetalleVenta(available);
                dv.setBebida(null);
                dv.setCantidad(null);
                detalleVentaDao.create(dv);
            }
            return EstadoVenta.SOLD;
        }
        
    }

}
